<html>
    <head>
        <title>权限管理 IPermissionManager接口</title>
    </head>
    <body>
        <script>
            // 四、权限管理
                        /*
                            1、通过"权限管理界面"进行权限管理

                            2、通过代码管理权限 （IPermisssionManager接口）
                                
                                    如果需要通过代码管理权限，注入IPermissionManager并使用如下所示：

                                        public class MyService : ITransientDependency
                                        {
                                            private readonly IPermissionManager _permissionManager;

                                            public MyService(IPermissionManager permissionManager)
                                            {
                                                _permissionManager = permissionManager; // 注入IPermissionManager接口
                                            }

                                            // 授予权限
                                            public async Task GrantPermissionForUserAsync(Guid userId, string permissionName)
                                            {
                                                await _permissionManager.SetForUserAsync(userId, permissionName, true);
                                            }

                                            // 接除权限授予
                                            public async Task ProhibitPermissionForUserAsync(Guid userId, string permissionName)
                                            {
                                                await _permissionManager.SetForUserAsync(userId, permissionName, false);
                                            }
                                        }        

                                    SetForUserAsync设置用户权限的值（真/假）。还有更多的扩展方法，如SetForRoleAsync和SetForClientAsync。

                                    注意： IPermissionManager由权限管理模块定义
                        */
        </script>
    </body>
</html>